package com.liveinstars.im.api;

import com.liveinstars.im.common.enums.PassThroughMessageTypeEnum;
import com.liveinstars.im.domain.dao.model.Todo;
import com.liveinstars.im.entity.Msg;


public interface MsgGeneratorService {

    /**
     * 发送通知消息，传参内配置发送内容, 服务端不保存，直接发送
     * @param notifyData
     */
    void sendNotifyMessage(NotifyData notifyData);

    /**
     * 发送todo代办消息给用户,服务端不保存，直接发送
     * @param todo
     * @param toId
     */
    void sendTodoMessage(Todo todo, Long toId);

    /**
     * 给一个人单独发消息,可以是通知消息或者是普通消息,通知消息用于客户端事件处理传递用,服务端不保存，直接发送
     * @param toId
     * @param passThroughMessageTypeEnum
     * @param message
     */
    void sendRoamingMessage(Long toId, PassThroughMessageTypeEnum passThroughMessageTypeEnum, Msg.Message message);
}
